/*
 * ImageEditor.java
 *
 * Created on July 21, 2006, 1:35 AM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package org.jdesktop.beans.editors;

import java.awt.Component;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyEditorSupport;

/**
 *
 * @author joshy
 */
public class ImageEditor extends PropertyEditorSupport {
	Image image = null;
	ImagePicker picker = new ImagePicker();

	/** Creates a new instance of ImageEditor */
	public ImageEditor() {
		picker.imageView.addPropertyChangeListener("image", new PropertyChangeListener() {
			public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
				image = picker.imageView.getImage();
				firePropertyChange();
			}
		});
	}

	@Override
	public Image getValue() {
		return image;
	}

	@Override
	public void setValue(Object object) {
		image = (Image) object;
		super.setValue(image);
		picker.imageView.setImage(image);
	}

	@Override
	public void setAsText(String text) throws IllegalArgumentException {
		// do nothing right now
	}

	@Override
	public String getAsText() {
		return "an Image";
	}

	@Override
	public void paintValue(Graphics graphics, Rectangle r) {
		graphics.drawImage(image, (int) r.getX(), (int) r.getY(), (int) r.getWidth(), (int) r.getHeight(), null);
	}

	@Override
	public boolean isPaintable() {
		return true;
	}

	@Override
	public boolean supportsCustomEditor() {
		return true;
	}

	@Override
	public Component getCustomEditor() {
		return picker;
	}

}
